GDB ব্যবহার করে Assembly Code Debugging

Computer Programming - অ্যাসেম্বলি প্রোগ্রামিং (Assembly Programming) Assembly Language Debugging এবং Testing (Debugging and Testing Assembly Programs) |
217
217

GDB (GNU Debugger) একটি শক্তিশালী টুল যা প্রোগ্রামারদের C, C++, এবং Assembly Language প্রোগ্রাম ডিবাগ করার জন্য ব্যবহৃত হয়। GDB ব্যবহার করে Assembly Code ডিবাগিং করার মাধ্যমে প্রোগ্রামের কার্যপ্রবাহ, রেজিস্টার মান এবং মেমোরি স্টেট বিশ্লেষণ করা যায়।


GDB এর মাধ্যমে Assembly Code Debugging এর ধাপ

প্রাথমিক প্রস্তুতি:

  1. Assembly Code কম্পাইল করা: Assembly কোডকে ডিবাগ করার জন্য কম্পাইল করতে হবে -g ফ্ল্যাগ ব্যবহার করে, যা ডিবাগিং ইনফরমেশন যুক্ত করে।

    nasm -f elf64 -g program.asm -o program.o
    ld program.o -o program
  2. GDB শুরু করা: প্রোগ্রাম GDB দিয়ে চালানো।

    gdb ./program

GDB কমান্ড:

প্রাথমিক কমান্ড:

  • start: প্রোগ্রামের শুরু থেকে ডিবাগিং শুরু করার জন্য।

    (gdb) start
  • layout asm: Assembly কোডের লেআউট দেখতে।

    (gdb) layout asm
  • break বা b: নির্দিষ্ট ঠিকানায় বা লেবেলে ব্রেকপয়েন্ট সেট করতে।

    (gdb) break _start

নির্দেশনা পরীক্ষা ও চলাচল:

  • stepi (বা si): এক ধাপে এক নির্দেশনা কার্যকর করতে (Single-step execution)।

    (gdb) stepi
  • nexti (বা ni): এক ধাপে এক নির্দেশনা কার্যকর করা, তবে কল করা সাবরুটিনে প্রবেশ না করে (Next instruction)।

    (gdb) nexti

রেজিস্টার এবং মেমোরি বিশ্লেষণ:

  • info registers: সমস্ত রেজিস্টারের বর্তমান মান দেখতে।

    (gdb) info registers
  • x: মেমোরি পরীক্ষা করতে (Examine memory)।

    (gdb) x/16xb $esp
  • print বা p: নির্দিষ্ট রেজিস্টার বা ভেরিয়েবলের মান দেখতে।

    (gdb) print $eax

GDB Debugging এর উদাহরণ

section .data
    msg db 'Hello, World!', 0

section .text
    global _start

_start:
    mov edx, 13         ; msg দৈর্ঘ্য
    mov ecx, msg        ; msg অ্যাড্রেস
    mov ebx, 1          ; stdout
    mov eax, 4          ; sys_write
    int 0x80            ; সিস্টেম কল

    mov eax, 1          ; sys_exit
    xor ebx, ebx        ; এক্সিট কোড 0
    int 0x80            ; সিস্টেম কল

GDB কমান্ড উদাহরণ:

  1. প্রোগ্রাম চালু করা:

    (gdb) start
  2. Assembly কোড দেখতে:

    (gdb) layout asm
  3. নির্দিষ্ট ব্রেকপয়েন্ট সেট করা:

    (gdb) break _start
  4. স্টেপ বাই স্টেপ ডিবাগিং:

    (gdb) stepi
  5. রেজিস্টার চেক করা:

    (gdb) info registers

GDB Debugging এর সুবিধা:

Assembly কোড পরীক্ষা:

  • এক ধাপে এক নির্দেশনা পরীক্ষা করা যায়, যা কোডের কার্যপ্রবাহ বিশ্লেষণ করতে সাহায্য করে।

রেজিস্টার ও মেমোরি বিশ্লেষণ:

  • প্রোগ্রামের রেজিস্টার মান এবং মেমোরি স্টেট চেক করার মাধ্যমে ত্রুটি চিহ্নিত করা যায়।

কোড অপ্টিমাইজেশন:

  • Assembly কোডের কার্যকারিতা পরীক্ষা করে এবং অপ্টিমাইজ করার জন্য সহায়ক।

সারসংক্ষেপ

GDB একটি শক্তিশালী টুল যা Assembly Language প্রোগ্রাম ডিবাগ করতে এবং কার্যপ্রণালী বিশ্লেষণ করতে সাহায্য করে। এটি রেজিস্টার এবং মেমোরি চেক করা, স্টেপ বাই স্টেপ নির্দেশনা কার্যকর করা, এবং ব্রেকপয়েন্ট ব্যবহার করে কোডের ত্রুটি নির্ণয় করতে পারে। GDB ব্যবহার করে Assembly Code Debugging প্রোগ্রামিংয়ে দক্ষতা বৃদ্ধিতে সহায়ক।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion